package com.dragon.modules.yuegou.service.wallet;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dragon.modules.yuegou.entity.wallet.MemberWalletEntity;
import com.dragon.modules.yuegou.model.order.Order;
import com.dragon.modules.yuegou.model.pay.YueCardPayModel;
import com.dragon.modules.yuegou.model.wallet.MemberCard;
import com.dragon.modules.yuegou.model.wallet.MemberWallet;

import java.math.BigDecimal;
import java.util.List;
/**
 * 会员钱包 服务接口
 *
 * @author pbuilder generated
 * @date 2019-03-19 14:37:43
 * @version 2.0
 */
public interface MemberWalletService extends IService<MemberWalletEntity> {

	/**
	 * 修改支付密码
	 */
	MemberWallet modifypayPassword(String memberId,String newPassword,String oldPassword);

	/**
	 * 忘记支付密码
	 */
	MemberWallet forgetpayPassword(String memberId,String newPassword);

	/**
	 * 获取会员钱包
	 * 
	 * @param memberId 会员ID
	 * @return 会员钱包
	 */
	MemberWallet loadByMember(String memberId);

	/**
	 * 查询会员悦卡列表
	 * @param memberId 会员ID
	 * @return 会员悦卡列表
	 * */
	List<MemberCard> memberCardList(String memberId);

	/**
	 * 会员使用悦币
	 * @param memberId
	 * @param orderNo
	 * @param merchantId
	 * @param fee
	 */
	void useYueCoin(String memberId,String orderNo, String merchantId, BigDecimal fee);

	/**
	 * 会员充值悦币
	 * @param memberId
	 * @param orderNo
	 * @param fee
	 */
	void rechargeYueCoin(String memberId,String orderNo, BigDecimal fee);

	/**
	 * 会员使用悦卡
	 * @param order
	 * @param yueCards
	 */
	void useYueCard(Order order, List<YueCardPayModel> yueCards);

	/**
	 * 会员预使用悦卡
	 * @param order
	 * @param yueCards
	 */
	BigDecimal earlyUseYueCard(Order order, List<YueCardPayModel> yueCards);

}